package com.ivens.services;

import java.util.Date;

import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.map.MappingIterator;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.web.client.RestTemplate;

import android.app.Application;
import android.app.ProgressDialog;
import android.content.Context;
import android.text.format.DateFormat;

import com.ivens.beans.Actividad;
import com.ivens.beans.Categoria;

public class CalendarService {

	private RestTemplate restTemplate;
	private JsonFactory jsonFactory = null;
	private JsonParser jp = null;
	private ObjectMapper objectMapper = null;
	private MappingIterator<Categoria[]> list = null;

	public CalendarService() {
		restTemplate = new RestTemplate();
		objectMapper = new ObjectMapper();
		jsonFactory = new JsonFactory();

		/*
		 * Message message = new Message(); message.setId(555);
		 * message.setSubject("Prueba");
		 * message.setText("Enviando  prueba de objeto JSON");
		 * 
		 * String url = "http://mypretendservice.com/sendmessage"; RestTemplate
		 * restTemplate = new RestTemplate(); String response =
		 * restTemplate.postForObject(url, message, String.class);
		 */
	}

	public Categoria[] obtenerEventos(Date fecha) throws ServiceException {
		// String url =
		// String url =
		// "http://api.mitiempo.pe/0.5/agenda/calendario/2012-02-06.json";
		String url = "http://api.mitiempo.pe/0.5/agenda/calendario/".concat(
				DateFormat.format("yyyy-MM-dd", fecha).toString()).concat(
				".json");
		try {
			String result = restTemplate.getForObject(url, String.class);
			jp = jsonFactory.createJsonParser(result);
			list = objectMapper.readValues(jp, Categoria[].class);
			if (list.hasNext()) {
				return list.next();
			} else
				return null;

		} catch (Exception e) {
			throw new ServiceException(
					"Error al obtener los eventos del calendario", e);
		}

	}

	private Actividad list1 = null;

	public Actividad obtenerActividad(int idActividad,
			Class<? extends Actividad> tipoActividad) throws ServiceException {
		
		// String url =
		// "http://api.mitiempo.pe/0.5/agenda/calendario/2012-02-06.json";
		String url = "http://api.mitiempo.pe/0.5/agenda/actividad/".concat(
				idActividad + "").concat(".json");
		String result = restTemplate.getForObject(url, String.class);
		try {
			jp = jsonFactory.createJsonParser(result);
			return objectMapper.readValue(jp, tipoActividad);

		} catch (Exception e) {
			throw new ServiceException("Error al obtener la actividad", e);
		}

	}

}
